const express = require('express')
// ① 创建服务
const app = express()
/* 
    ② 监听get
        req:请求对象
        res:响应对象
        res.send():向客户端发送相应数据
 */
app.get('请求url', (req, res) => {
    res.send({
        id: '1',
        name: 'll'
    })
})
/* 
    ③ 启动服务
    命令查看启动是否成功:       netstat -ano |findstr 8080
                    mac/linux:netstat -tunp | grep 8080
*/
app.listen(8080,()=>{})

/* 
    1、use 类似于路由守卫
        作用：接收所有请求，
        next：是否向下执行
        接受所有请求，有一个next参数，此参数定义是否向下执行 路由规则
        参数1：  空     前面的所有规则必须符合
                不为空  前面的单一正确即可
        参数2：回调函数
            1、请求
            2、响应
            3、是否向下执行
            app.use('', (req, res, next) => {
                next(); //处理结束，向下执行，直接匹配到定义了的规则
            })
*/
app.use((req,res,next)=>{
    next()
})

/* 
    2、参数的获取
        get值:      req.query
        动态参数值:  req.params
        post值:     req.body
*/
// 路由参数:api/detail/100/zzhh
app.get('api/detail/:id/:name',(req,res)=>{
    let {id,name}=req.params
    res.send(name,id)
})

/* 
    3、静态资源托管
        express提供了一个非常好用的方法，叫做 express.static()，通过此方法，可以非常方便地创建一个静态web资源服务器
        app.use(express.static('public'))
        现在可以访问public目录下所有的文件 
        如public/aa.jpg文件，则可以通过 : http://xxxx/images/aa.jpg

        挂载路径前缀,希望是访问到指定的路径后才触发到静态资源管理
        app.use('public', express.static('public'))
        如public/aa.jpg文件，则可以通过 : http://xxxx/public/images/aa.jpg
*/
// 访问public下的内容
    app.use(express.static('public'))
    app.use('public', express.static('public'))
    // 44处理
    app.use((req,res,next)=>{
        res.statusCode=404
        res.send('页面丢了')
    })